package com.fivefox.document.table.service;


import com.alibaba.fastjson2.JSONObject;
import com.fivefox.document.table.dto.TableRecordsInsertDTO;
import com.fivefox.document.table.dto.TableRecordsUpdateDTO;

import java.util.List;

/**
 * 多维表格记录接口
 *
 * @author lirenqi
 */
public interface ITableRecordService {


    /**
     * 获取多维表格总记录数
     */
    int getTableTotal(String appToken, String tableId);

    /**
     * 列出表中所有数据
     */
    List<JSONObject> getRecordsAll(String appToken, String tableId);

    /**
     * 列出记录，单次最多列出 500 行记录
     */
    JSONObject getRecordsPassPaging(String appToken, String tableId, int pageSize, String pageToken);

    /**
     * 新增多条记录
     */
    JSONObject insertRecords(String appToken, String tableId, List<TableRecordsInsertDTO> tableRecordsInsertDTOList);

    /**
     * 更新记录
     */
    JSONObject updateRecords(String appToken, String tableId, List<TableRecordsUpdateDTO> tableRecordsUpdateDTOList);

    /**
     * 当数据在多维表格存在时更新，不存在时新增
     */
    JSONObject insertOrUpdate(String appToken, String tableId, List<JSONObject> jsonObjectList);

    /** 删除多条记录，单次调用中最多删除 500 条记录 */
}
